package com.juqimiao.raccoon.commodity.domain.reference;

import com.juqimiao.linn.domain.ValueObject;
import com.sun.istack.internal.NotNull;
import lombok.Data;

/**
 * 多维度度量衡表达式
 * <p>
 *      长     宽    高
 * 比如：300 x 300 x 300 CM
 *
 * </p>
 *
 * @author Collin Cai
 */
@Data
public class ExpressionElement extends ValueObject implements Comparable<ExpressionElement> {
    private String expressionId;
    /**
     * 0 - 类型为label元素，只用于展示，不用于组装value_name；
     * 1 - 类型为label元素，用于展示，用于组装value_name；
     * 2 - 类型为输入元素，主要用于卖家输入数据. 卖家填写完后需要重新设置该元素的文本数据；
     */
    private Integer type;
    /**
     * 表达式元素的文本。
     */
    private String text;
    /**
     * 是否显示这个标签元素
     */
    private Boolean showLabel;
    /**
     * 是否文本元素，用于显示也用于组装value_name，比如：操作符
     */
    private Boolean label;
    /**
     * 这个表达式元素是不是一个接受输入的元素。
     */
    private Boolean input;

    private int sortOrder;

    @Override
    public int compareTo(@NotNull ExpressionElement value) {
        return this.sortOrder - value.sortOrder;
    }
}
